/**
* @author Lourdes Sanchez
* @author Eugenia Jose
* @author Esteban Castro
* @author Carlos Fernandez
* @author Fernando Turon
* @version 1.0 01-05-12
*
* La clase Ronda se instancia en distintas parte de la aplicación
*
* @see Prueba
*/

package edu.uoc.tds.pec4.model;

import java.io.Serializable;
import java.util.Date;

public class Ronda implements Serializable{
    //Declaración de atributos de clase

    /** Identificador universal para esta clase Serializable. */
    private static final long serialVersionUID = -14L;
    
    //id de la Prueba
    protected int id_prueba;

    //id del tipo de Ronda
    protected int id_tipo_ronda;

    //id del responsable de Cierre
    protected int id_responsable_cierre;

    //número de preguntas de la ronda
    protected int numero_preguntas;

    //fecha de inicio de realización de la ronda
    protected Date fecha_inicio_realizacion;

    //fecha de inicio de finalización de la ronda
    protected Date fecha_fin_realizacion;

    //número de respuestas
    protected String respuestas;

    //fecha de alta de la ronda
    protected Date fecha_alta;

    //fecha de modificación de la ronda
    protected Date fecha_modificacion;

    //fecha de baja de la ronda
    protected Date fecha_baja;

    /**
     * Accesor de lectura de la descripcion de la ronda instanciada
     * {post: devuelve la descripcion de la ronda instanciada}
     */
    public Date getFecha_alta() {
        return fecha_alta;
    }

    /**
     * Accesor de escritura de la fecha de alta de la ronda instanciada
     * {pre: x es una instancia de ronda)
     * {post: fecha de alta de la instancia de ronda actual}
     */
    public void setFecha_alta(Date fecha_alta) {
        this.fecha_alta = fecha_alta;
    }

    /**
     * Accesor de lectura de la fecha de baja de la ronda instanciada
     * {post: devuelve la fecha de baja de la ronda instanciada}
     */
    public Date getFecha_baja() {
        return fecha_baja;
    }

    /**
     * Accesor de escritura de la fecha de baja de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: fecha de baja de la ronda instanciada}
     */
    public void setFecha_baja(Date fecha_baja) {
        this.fecha_baja = fecha_baja;
    }

    /**
     * Accesor de lectura de la fecha de fin de realización de la ronda instanciada
     * {post: devuelve la fecha de fin de realización de la ronda instanciada}
     */
    public Date getFecha_fin_realizacion() {
        return fecha_fin_realizacion;
    }

    /**
     * Accesor de escritura de la fecha fin de realización de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: fecha de fin de realización de la ronda instanciada}
     */
    public void setFecha_fin_realizacion(Date fecha_fin_realizacion) {
        this.fecha_fin_realizacion = fecha_fin_realizacion;
    }

    /**
     * Accesor de lectura de la fecha de inicio de realización de la ronda instanciada
     * {post: devuelve la fecha de baja de la ronda instanciada}
     */
    public Date getFecha_inicio_realizacion() {
        return fecha_inicio_realizacion;
    }

    /**
     * Accesor de escritura de la fecha fin de realización de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: fecha de fin de realización de la ronda instanciada}
     */
    public void setFecha_inicio_realizacion(Date fecha_inicio_realizacion) {
        this.fecha_inicio_realizacion = fecha_inicio_realizacion;
    }

    /**
     * Accesor de lectura de la fecha de modificación de la ronda instanciada
     * {post: devuelve la fecha de modificación de la ronda instanciada}
     */
    public Date getFecha_modificacion() {
        return fecha_modificacion;
    }

    /**
     * Accesor de escritura de la fecha modificación de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: fecha de fin de modificación de la ronda instanciada}
     */
    public void setFecha_modificacion(Date fecha_modificacion) {
        this.fecha_modificacion = fecha_modificacion;
    }

    /**
     * Accesor de lectura del id de la Prueba de la ronda instanciada
     * {post: devuelve el id de la prueba de la ronda instanciada}
     */
    public int getId_prueba() {
        return id_prueba;
    }

    /**
     * Accesor de escritura del id de la prueba de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: id de la prueba de la ronda instanciada}
     */
    public void setId_prueba(int id_prueba) {
        this.id_prueba = id_prueba;
    }

    /**
     * Accesor de lectura del id del responsable de la ronda instanciada
     * {post: devuelve el id del responsable de la ronda instanciada}
     */
    public int getId_responsable_cierre() {
        return id_responsable_cierre;
    }

    /**
     * Accesor de escritura del id del responsable de cierre de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: id del responsable de cierre de la ronda instanciada}
     */
    public void setId_responsable_cierre(int id_responsable_cierre) {
        this.id_responsable_cierre = id_responsable_cierre;
    }

    /**
     * Accesor de lectura del id del tipo de la ronda instanciada
     * {post: devuelve el id del tipo de la ronda instanciada}
     */
    public int getId_tipo_ronda() {
        return id_tipo_ronda;
    }

    /**
     * Accesor de escritura del id del tipo de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: id del tipo de la ronda instanciada}
     */
    public void setId_tipo_ronda(int id_tipo_ronda) {
        this.id_tipo_ronda = id_tipo_ronda;
    }

    /**
     * Accesor de lectura del número de preguntas de la ronda instanciada
     * {post: devuelve el número de preguntas de la ronda instanciada}
     */
    public int getNumero_preguntas() {
        return numero_preguntas;
    }

    /**
     * Accesor de escritura del número de preguntas de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: devuelve el número de preguntas de la ronda instanciada}
     */
    public void setNumero_preguntas(int numero_preguntas) {
        this.numero_preguntas = numero_preguntas;
    }

    /**
     * Accesor de lectura de la cadena de respuestas de la ronda instanciada
     * {post: devuelve la cadena de respuestas de la ronda instanciada}
     */
    public String getRespuestas() {
        return respuestas;
    }

    /**
     * Accesor de escritura de la cadena de respuestas de la ronda instanciada
     * {pre: x es una instancia de Ronda)
     * {post: devuelve la cadena de respuestas de la ronda instanciada}
     */
    public void setRespuestas(String respuestas) {
        this.respuestas = respuestas;
    }

    /**
     * Constructor sin parámetros de la clase Ronda.
     * Crea una instancia de Ronda.
     * {pre: no hay parámetros}
     * {post: instancia de la clase Ronda}
     */
    public Ronda(){
        this.id_prueba = 0;
        this.id_tipo_ronda = 0;;
        this.id_responsable_cierre = 0;;
        this.numero_preguntas = 0;
        this.fecha_inicio_realizacion = null;
        this.fecha_fin_realizacion = null;
        this.respuestas = null;
        this.fecha_alta = null;
        this.fecha_modificacion = null;
        this.fecha_baja = null;
    }
        /**
     * Constructor con parámetros de la clase Ronda.
     * Crea una instancia de Ronda.
     * {pre: instancia de la clase Prueba e instancia de TipoRonda}
     * {post: instancia de la clase Ronda}
     */
    public Ronda(Prueba prueba, TipoRonda tipoRonda){
        this.id_prueba = prueba.getId_prueba();
        this.id_tipo_ronda = tipoRonda.valor();
        this.id_responsable_cierre = 0;
        this.numero_preguntas = 0;
        this.fecha_inicio_realizacion = null;
        this.fecha_fin_realizacion = null;
        this.respuestas = null;
        this.fecha_alta = null;
        this.fecha_modificacion = null;
        this.fecha_baja = null;
    }

}
